Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
node-wget-fetch
Advanced tools
Ultra simple async retrieval of resources or remote files over http or https, an cli tool, and convenience wrapper of node-fetch, and a seamless retry ability
Ultra simple async retrieval of resources or remote files over http or https, an cli tool, convenience wrapper of node-fetch, and a seamless retry ability.
npm install node-wget-fetch
fetching(url
, action = destination
| response_body_type
| options
[, options
])
url
A string representing an absolute url
action
Save to destination or body action on response type or use for options
response type can be:
header
' for all response headers - raw()object
' for the response object - no post/pre processingarray
' for arrayBuffer()buffer
' for buffer()blob
' for blob()json
' for json()text
' for text()stream
' for NodeJs.readableStream()default is 'download
'
options
Standard Request/Fetch Options for the HTTP(S) request
Returns: Promise of response body
of above type, only if status text is OK
.
The response type will set Fetch/Request header 'Content-Type'
as:
json
' = 'application/json; charset=utf-8'text
' = 'application/x-www-form-urlencoded'blob
' = 'application/octet'buffer
' = 'application/octet'header
' = 'text/plain'object
' = 'application/json; charset=utf-8'stream
' = 'application/octet'array
' = 'application/octet'To customize retry
Fetch operation, update in options
.
retry:
{
retries: 1, // The maximum amount of times to retry the operation.
factor: 2, //The exponential factor to use.
minTimeout: 1000, // The number of milliseconds before starting the first retry.
maxTimeout: 'Infinity', // The maximum number of milliseconds between two retries.
randomize: false, // Randomizes the timeouts by multiplying with a factor between 1 to 2.
}
import { get, head, options } from 'node-wget-fetch';
get(url
, response_body_type
[, options
]);
head(url
, response_body_type
[, options
]);
options(url
, response_body_type
[, options
);]
body
dataNote:
body
data is passed in, handled by URLSearchParams class, ifString
orObject
.
import { post, put, patch, delete } from 'node-wget-fetch';
post(url
, body
, response_body_type
[, options
]);
put(url
, body
, response_body_type
[, options
]);
patch(url
, body
, response_body_type
[, options
]);
delete(url
, body
, response_body_type
[, options
]);
fetching.fetch(url
[, options
]);
// CommonJS
const fetching = require('node-wget-fetch');
const wget = fetching.wget;
// ESM 12+
import { wget } from 'node-wget-fetch';
wget(url) // retrieve to current directory
.then((info) => {});
.catch((error) => {});
wget(url, { headers: { Accept: '*/*' } }) // with optional `Fetch` options
.then((info) => {});
.catch((error) => {});
wget(url, destination_folder_or_filename, { timeout: 2000 } ) // with optional `Fetch` options
.then((info) => {});
.catch((error) => {});
fetching(url, responseType, // *responseType* can be:
// 'header' for all response headers - raw()
// 'object' for the response object - no post/pre processing
// 'array' for arrayBuffer()
// 'buffer' for buffer()
// 'blob' for blob()
// 'json' for json()
// 'text' for text()
// 'stream' for NodeJs.readableStream()
// default is 'download'
{ headers: {Accept: '*/*' } }) // with optional `Fetch` options
)
.then((processedResponse) => {
// No file is retrieved or saved,
// an resolved `Fetch` response body of above type is returned
});
.catch((error) => {});
import { wget } from 'node-wget-fetch';
wget('https://raw.github.com/techno-express/node-wget-fetch/master/angleman.png'); // angleman.png saved to current folder
wget('https://raw.github.com/techno-express/node-wget-fetch/master/package.json',
'/tmp/', // destination path or path with filename, default is ./
{ timeout: 2000 } // Any `Fetch` Options, this sets duration to wait for request in milliseconds, default 0
)
.then((info) => {
console.log('--- headers:'); // display all response headers
console.log(info.headers);
console.log('--- file path:'); // display file retrieved info
console.log(info.filepath);
console.log('--- file size retrieved:');
console.log(info.fileSize);
console.log('--- Do file retrieved match "Content-Length"?:');
console.log(info.fileSizeMatch);
})
.catch((error) => {
console.log('--- error:');
console.log(error); // error encountered
});
);
Install:
npm install -g node-wget-fetch
Use:
Usage: wget [options] <url>
Or
Usage: fetch [options] <url>
Ultra simple async retrieval of remote files over http or https
Options:
-h, --help output usage information
-v, --version output version number
-d, --destination <folder> specify download destination
Usage:
# Download file
$ wget https://github.com/NodeOS/NodeOS/archive/master.zip
$ fetch https://github.com/NodeOS/NodeOS/archive/master.zip
# Download file to location
$ wget https://github.com/NodeOS/NodeOS/archive/master.zip -d path/to/here/
$ fetch https://github.com/NodeOS/NodeOS/archive/master.zip -d path/to/here/
FAQs
Ultra simple async retrieval of resources or remote files over http or https, an cli tool, and convenience wrapper of node-fetch, and a seamless retry ability
The npm package node-wget-fetch receives a total of 256 weekly downloads. As such, node-wget-fetch popularity was classified as not popular.
We found that node-wget-fetch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.